package oa.hleast.xswl.pojo.dto.pay.ali;

import com.alipay.api.domain.MutipleCurrencyDetail;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 支付宝下单类
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class AlipayRoot {
    /**
     * 商家侧唯一订单号，由商家自定义。对于不同转账请求，商家需保证该订单号在自身系统唯一
     * 必选
     */
    private String out_trade_no;
    /**
     * 订单总金额，单位为元，不支持千位分隔符，精确到小数点后两位，取值范围[0.1,100000000]。
     * 必选
     */
    private Double total_amount;
    /**
     * 订单标题。
     * 注意：不可使用特殊字符，如 /，=，& 等。
     * 必选
     */
    private String subject;
    /**
     * 产品码。
     * 商家和支付宝签约的产品码。 枚举值（点击查看签约情况）：
     * QUICK_WAP_WAY：无线快捷支付产品。
     * 默认值为QUICK_WAP_PAY。
     * 必选
     */
    private String product_code;
    /**
     * 业务场景。单笔无密转账固定为 DIRECT_TRANSFER。
     * 可选
     */
    private String auth_token;
    /**
     * 针对用户授权接口，获取用户相关数据时，用于标识用户授权关系
     * 可选
     */
    private MutipleCurrencyDetail body;
    /**
     * 用户付款中途退出返回商户网站的地址
     * 必选
     */
    private String quit_url;
    /**
     * 订单绝对超时时间。
     * 格式为yyyy-MM-dd HH:mm:ss。
     * 注：time_express和timeout_express两者只需传入一个或者都不传，如果两者都传，优先使用time_expire。
     * 可选
     */
    private String time_expire;

    /**
     * 订单相对超时时间。
     * 该笔订单允许的最晚付款时间，逾期将关闭交易。取值范围：5m～15d。m-分钟，h-小时，d-天，1c-当天（1c-当天的情况下，无论交易何时创建，都在0点关闭）。 该参数数值不接受小数点， 如 1.5h，可转换为 90m。
     * 注：无线支付场景最小值为5m，低于5m支付超时时间按5m计算。
     * 注：time_express和timeout_express两者只需传入一个或者都不传，如果两者都传，优先使用time_expire。
     * 可选
     */
    private String timeout_express;

    private String business_params;

    private String promo_params;

    private String passback_params;

    private String store_id;

    private String enable_pay_channels;

    private String disable_pay_channels;

    private String specified_channel;

    private String merchant_order_no;

    private GoodsDetail goods_detail;
}
